Jackson이 JSON 직렬화하는 방식
getter 없는 응답 객체가 빈 JSON이나 406을 뱉는 이유를 Jackson의 직렬화 우선순위(게터 우선, 그다음 public 필드)로 짚은 짧은 정리.
태그
10편 · 아카이브에서 필터로 보기
getter 없는 응답 객체가 빈 JSON이나 406을 뱉는 이유를 Jackson의 직렬화 우선순위(게터 우선, 그다음 public 필드)로 짚은 짧은 정리.
Request에서 Command, Entity를 거쳐 Response로 이어지도록 계층별 객체를 갈라 스프링 부트 패키지 구조를 잡고, 같은 기준으로 Vue 3 쪽 구조와 견줘본 정리.
create-vue로 만든 Vite 기반 Vue 앱의 빌드 결과물을 스프링 부트 static에 실어 한 번에 배포하는 구성을 정리하고, 프론트·백엔드를 따로 띄우는 방식과 비교했다.
서버 사이드(JSP·Thymeleaf)와 클라이언트 사이드 템플릿 엔진이 HTML을 완성하는 지점이 어디서 갈리는지 렌더링 흐름으로 구분한 개념 정리.
구글·페이스북·네이버·카카오가 제각각 주는 소셜 로그인 응답을 enum의 추상 메서드로 하나의 사용자 객체로 변환해, 제공자가 늘어도 분기문이 늘지 않게 만든 개발일지.
비즈니스 로직 중간에 에러가 나면 이벤트가 유실되는 문제를 29CM가 아웃박스 테이블과 TransactionalEventListener의 BEFORE_COMMIT/AFTER_COMMIT 분리로 푼 방식을 따라가며 정리한 탐구 기록.
29CM와 컬리의 검색 전환기를 나란히 읽고, 원천 데이터와 변경 데이터를 카프카 발행/구독으로 흘려 검색엔진 인덱싱 파이프라인을 만드는 공통 구조를 뽑아낸 탐구 기록.
AWS 데이터베이스 접속 정보를 원격 저장소에 올려야 하는 상황에서 Jasypt로 application.yml 속성을 암호화하고, 복호화 키는 실행 환경변수로 분리한 적용 기록.
컨트롤러에 스웨거 애노테이션이 뒤엉켜 서버 코드가 읽히지 않자, 인터페이스 분리 원칙을 적용해 문서용 인터페이스를 떼어내고 반복되는 정의는 커스텀 어노테이션으로 묶은 개선기.
프론트에 넘길 API 문서를 만들면서 테스트를 강제하는 Spring REST Docs와 UI가 좋은 Swagger UI를 굳이 둘 다 붙인 구성을 정리했다. OAS로 두 문서를 하나로 합치는 방안은 설계만 그려두고 후속 과제로 남겼다.